package com.huike.springboot1.demos.Mapper;

import com.huike.springboot1.demos.pojo.User;
import com.huike.springboot1.demos.pojo.User1;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface User1Mapper {
    // 根据用户名查询用户
    User1 selectByUsername(@Param("username") String username);

    // 根据用户ID查询用户拥有的角色
    User1 selectUserRoles(@Param("userId") Long userId);

//    管理员端
//    查询所有用户
    @Select("select * from sys_user")
    public List<User1> user1Select();//返回的有username,password所以为list类型
    User1 selectById(@Param("id") Long id); // 根据ID查询用户
    int insert(User1 user); // 新增用户
    int update(User1 user); // 更新用户
    int delete(@Param("id") Long id); // 删除用户
    int deleteUserRoles(@Param("userId") Long userId); // 删除用户-角色关联
    int batchInsertUserRoles(@Param("userId") Long userId, @Param("roleIds") List<Long> roleIds); // 批量添加用户-角色关联

//检查是否已经使用邮箱注册
    int countByEmail(@Param("email") String email);

//    检查用户名是否已经存在
    @Select("SELECT COUNT(*) FROM sys_user WHERE username = #{username}")
    int countByUsername(@Param("username") String username);


}
